package com.cakin.javademo;

/**
 * @ClassName: StringBufferTst
 * @Description: StringBuffer测试
 * @Date: 2020/6/15
 * @Author: cakin
 */
public class StringBufferTest {
    /**
     * 功能描述：
     *
     * @author cakin
     * @date 2020/6/15
     * @param
     * @return
     * @description: StringBuffer和StringBuilder区别
     * 相同点：
     * StringBuffer和StringBuilder：可以修改的对象
     * String：不能修改的对象
     * 不同点：             线程是否安全      速度比较    应用场景
     * StringBuffer：        线程安全        速度慢     线程安全有要求
     * StringBuilder：       线程不安全       速度快    线程安全没有要求
     */
    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder("abc");
        StringBuffer stringBuffer = new StringBuffer("abc");
        // append:追加
        stringBuilder.append(" def");
        stringBuffer.append(" def");
        System.out.println(stringBuilder);
        System.out.println(stringBuffer);
        System.out.println(stringBuffer.toString());
        System.out.println(stringBuilder.toString());
        System.out.println("===================================");
        // reverse:反转
        System.out.println(stringBuilder.reverse());
        System.out.println(stringBuffer.reverse());
        // StringBuilder delete(int start, int end)：删除 [start,end）之间的字符串
        System.out.println(stringBuilder.delete(2,4));  // [2,4)
        System.out.println(stringBuffer.delete(2,4));
        // insert(int offset, String str)：在offset位置插入str
        System.out.println(stringBuffer.insert(2,"d "));
        System.out.println(stringBuilder.insert(2,"d "));
        // replace (int start, int end, String str):替换[start,end）之间的字符串为str
        System.out.println(stringBuffer.replace(2,4,"*************"));
        System.out.println(stringBuilder.replace(2,4,"*************"));

    }
}
